package ar.edu.valetinis.modulo1.modelo;

/**
 * @author Nestor Valentinis
 * 
 * */
public abstract class Producto {
	
	private String nombre;
	private Long stockMinimo;
	private Long stockActual;
	private Proveedor proveedor; // se considera que solo puede tener 1 solo proveedor 
	private Long cantidadAReponer;
	
	//constructor
	
	public Producto() {		
	}
	
	public Producto(String nombre, Long stockMinimo, Long stockActual, Proveedor proveedor, 
			Long cantidadAReponer) {
		
		this.nombre = nombre;
		this.stockMinimo = stockMinimo;
		this.stockActual = stockActual;
		this.proveedor = proveedor;
		this.cantidadAReponer = cantidadAReponer;
	}
	
	public Producto(String nombre, Long stockMinimo, Long stockActual, Proveedor proveedor) {
		
		this.nombre = nombre;
		this.stockMinimo = stockMinimo;
		this.stockActual = stockActual;
		this.proveedor = proveedor;
	}
	
	public Producto(String nombre, Long stockMinimo, Long stockActual) {
		
		this.nombre = nombre;
		this.stockMinimo = stockMinimo;
		this.stockActual = stockActual;
	}
	
	//acciones
	
	/**
	 * Si stockActual es mayor al stockMinimo retorna un True.
	 *  
	 * */
	public Boolean checkSotck() {
		
		if( this.stockActual < this.stockMinimo ) {
			return Boolean.FALSE;
		}
		
		return Boolean.TRUE;
	}
	
	//getter & setter
	
	public void setStockMinimo(Long stockMinimo) {
		this.stockMinimo = stockMinimo;
	}

	public Long getStockMinimo() {
		return stockMinimo;
	}

	public void setStockActual(Long stockActual) {
		this.stockActual = stockActual;
	}

	public Long getStockActual() {
		return stockActual;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getNombre() {
		return nombre;
	}

	public void setProveedor(Proveedor proveedor) {
		this.proveedor = proveedor;
	}

	public Proveedor getProveedor() {
		return proveedor;
	}

	public void setCantidadAReponer(Long cantidadAReponer) {
		this.cantidadAReponer = cantidadAReponer;
	}

	public Long getCantidadAReponer() {
		return cantidadAReponer;
	}
	
}
